import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
// 淘宝无限适配
import 'lib-flexible'
// vant按需引入
import './plugins/vant'
// 路由守卫
import './router/permision'

// baseUrl
import { baseUrl } from '@/api/baseUrl'
Vue.prototype.$baseUrl = baseUrl
// socketUrl
import { socketUrl } from '@/api/baseUrl'

// socket.io
import VueSocketIO from 'vue-socket.io'
import SocketIO from 'socket.io-client'

const SOCKETIO = new VueSocketIO({
  debug: false, // true开启
  connection: SocketIO(socketUrl),
  // 使用vuex
  vuex: {
    store,
    // Prefix是前缀，表示你在定义vuex函数的时候，根据前缀区分普通函数还是socket函数。
    actionPrefix: 'SOCKET_',
    mutationPrefix: 'SOCKET_'
  },
  options: {
    autoConnect: false // 关闭自动连接，在用户登录后在连接。
  }
})

Vue.use(SOCKETIO)

// 拿本地用户信息存vuex
let userInfo = localStorage.getItem('userInfo')
if (userInfo) {
  let obj = JSON.parse(userInfo)
  store.commit('login/setUserInfo', obj)
  // 连接socket
  SOCKETIO.io.connect()
  SOCKETIO.io.emit('login', JSON.parse(userInfo)._id)
}

Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')